package com.zsn.util;

import com.zsn.entity.User;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class UserUtils {
    /**
     * 返回user表的所有用户集合
     * @return 集合
     * @throws ClassNotFoundException
     * @throws SQLException
     */
    public static List<User>  getUsers() throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.cj.jdbc.Driver");
        String username = "root";//用户名
        String password = "123456";//密码
        /*
            url参数用来确定连接的数据库信息： 数据库机器ip 端口号port 数据库名db_name 连接的参数，比如编解码集、时区...
            url格式：jdbc:mysql://ip:port/db_name?k=v参数 ，只需要了解url的组成，不需要记忆
        */
        String url = "jdbc:mysql://localhost:3306/zsndemo1_206";
        Connection conn = DriverManager.getConnection(url, username, password);//通过DriverManager管理驱动获取
        //3 准备发送SQL的工具
        String sql = "select * from t_user";
        PreparedStatement pstm = conn.prepareStatement(sql);
        //4 发送执行SQL
        ResultSet rs = pstm.executeQuery();
        List<User> users = new ArrayList<User>();
        while (rs.next()) {
            User user = new User();
            String name= rs.getString(2);
            String pwd= rs.getString(3);
            user.setUserName(name);
            user.setPassword(pwd);
            users.add(user);
        }
        rs.close();
        pstm.close();
        conn.close();
        return users;
    }
    public static int addUser(User user) throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.cj.jdbc.Driver");
        String username = "root";//用户名
        String password = "123456";//密码
        /*
            url参数用来确定连接的数据库信息： 数据库机器ip 端口号port 数据库名db_name 连接的参数，比如编解码集、时区...
            url格式：jdbc:mysql://ip:port/db_name?k=v参数 ，只需要了解url的组成，不需要记忆
        */
        String url = "jdbc:mysql://localhost:3306/zsndemo1_206";
        Connection conn = DriverManager.getConnection(url, username, password);//通过DriverManager管理驱动获取
        //3 准备发送SQL的工具
        String sql = "insert into t_user(user_name,password) values(?,?)";
        PreparedStatement pstm = conn.prepareStatement(sql);
        pstm.setString(1, user.getUserName());
        pstm.setString(2, user.getPassword());
        int myAdd = pstm.executeUpdate();
        pstm.close();
        conn.close();
        return myAdd;
    }
    public static boolean updateUser(User user) throws ClassNotFoundException, SQLException {
        boolean flag = false;
        //获得拥有所有账户密码的集合
        List<User> users = getUsers();
        for (User u : users) {
            //如过有则变为true，跳出
            if(user.getUserName().equals(user.getUserName())&&user.getPassword().equals(user.getPassword())){
                flag = true;
                break;
            }
        }
        return flag;
    }
}
